package 面经题目;

import java.util.Scanner;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2024-02-26
 * Time:20:36
 */

/**
 *
 OR67 水仙花数
 warning 校招时部分企业笔试将禁止编程题跳出页面，为提前适应，练习时请使用在线自测，而非本地IDE。
 描述
 春天是鲜花的季节，水仙花就是其中最迷人的代表，数学上有个水仙花数，他是这样定义的： “水仙花数”是指一个三位数，它的各位数字的立方和等于其本身，比如：153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。
 输入描述：
 输入数据有多组，每组占一行，包括两个整数m和n（100 ≤ m ≤ n ≤ 999）。
 输出描述：
 对于每个测试实例，要求输出所有在给定范围内的水仙花数，就是说，输出的水仙花数必须大于等于m,并且小于等于n，如果有多个，则要求从小到大排列在一行内输出，之间用一个空格隔开; 如果给定的范围内不存在水仙花数，则输出no; 每个测试实例的输出占一行。
 示例1
 输入：
 100 120
 300 380
 输出：
 no
 370 371

 */
public class Numberofdaffodils {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int m = in.nextInt();
            int n = in.nextInt();
            boolean isok = true;
            for(int i = m;i < n;i++){
                int num = (int)Math.pow((i % 10),3) + (int)Math.pow((i / 10 % 10),3) + (int)Math.pow((i / 100),3);
                if(num == i){
                    isok = false;
                    System.out.print(num + " ");
                }
            }
            if (isok) System.out.println("no");
        }
    }
}
